const defaultSql: {
  title: string;
  component: OnlineType.ColumnsConfig[]
}[] = [
  {
    title: '基础组件',
    component: [
      {
        valueType: 'text',
        title: '文本框',
        dataIndex: 'text',
        select: 'like',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '',
        defaultValue: 'empty string',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@cword(3, 5)',
        sqlType: 'varchar',
        sqlLength: 50,
      },
      {
        valueType: 'textarea',
        title: '文本域',
        dataIndex: 'textarea',
        select: 'like',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '',
        defaultValue: 'empty string',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@cparagraph(3)',
        sqlType: 'varchar',
        sqlLength: 255,
      },
      {
        valueType: 'password',
        title: '密码框',
        dataIndex: 'password',
        select: false,
        validation: [],
        hideInForm: false,
        hideInSearch: true,
        hideInTable: true,
        enum: '',
        defaultValue: 'empty string',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@word(10)',
        sqlType: 'varchar',
        sqlLength: 50,
      },
      {
        valueType: 'digit',
        title: '数字输入框',
        dataIndex: 'digit',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '',
        defaultValue: 'null',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@integer(60, 100)',
        sqlType: 'int',
        sqlLength: 10,
      },
      {
        valueType: 'switch',
        title: '开关',
        dataIndex: 'switch',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '',
        defaultValue: 'null',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@boolean',
        sqlType: 'int',
        sqlLength: 1,
      },
      {
        valueType: 'radio',
        title: '单选框',
        dataIndex: 'radio',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '1:one\n2:two\n3:three',
        defaultValue: '1',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@integer(1, 3)',
        sqlType: 'int',
        sqlLength: 2,
      },
      {
        valueType: 'radioButton',
        title: '按钮单选框',
        dataIndex: 'radioButton',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '1:one\n2:two\n3:three',
        defaultValue: '1',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@integer(1, 3)',
        sqlType: 'int',
        sqlLength: 2,
      },
      {
        valueType: 'checkbox',
        title: '多选框',
        dataIndex: 'checkbox',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '1:one\n2:two\n3:three',
        defaultValue: '1',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@integer(1, 3)',
        sqlType: 'varchar',
        sqlLength: 50,
      },
      {
        valueType: 'money',
        title: '金额输入框',
        dataIndex: 'money',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '',
        defaultValue: '1',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@float(60, 100, 0, 2)',
        sqlType: 'decimal',
        sqlLength: 10,
      },
      {
        valueType: 'select',
        title: '下拉框',
        dataIndex: 'select',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        enum: '1:one\n2:two\n3:three',
        defaultValue: '1',
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@integer(1, 3)',
        sqlType: 'varchar',
        sqlLength: 50,
      },
    ]
  },
  {
    title: '时间组件',
    component: [
      {
        valueType: 'date',
        title: '日期',
        dataIndex: 'date',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@date',
        sqlType: 'date',
      },
      {
        valueType: 'dateTime',
        title: '日期时间',
        dataIndex: 'dateTime',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@datetime',
        sqlType: 'datetime',
      },
      {
        valueType: 'dateMonth',
        title: '月',
        dataIndex: 'dateMonth',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@date("y-M")',
        sqlType: 'varchar',
        sqlLength: 50
      },
      {
        valueType: 'dateQuarter',
        title: '季度输入',
        dataIndex: 'dateQuarter',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@date',
        sqlType: 'varchar',
        sqlLength: 50
      },
      {
        valueType: 'dateYear',
        title: '年份输入',
        dataIndex: 'dateYear',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@date("y")',
        sqlType: 'year',
      },
    ]
  },
  {
    title: '业务组件',
    component: [
      {
        valueType: 'text',
        title: '自增主键',
        dataIndex: 'id',
        select: '=',
        validation: [],
        hideInForm: true,
        hideInSearch: false,
        hideInTable: false,
        isKey: true,
        null: true,
        autoIncrement: true,
        unsign: true,
        mock: '@integer(60, 100)',
        sqlType: 'int',
        sqlLength: 10
      },
      {
        valueType: 'rate',
        title: '星级组件',
        dataIndex: 'rate',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '',
        sqlType: 'int',
        sqlLength: 1
      },
      {
        valueType: 'color',
        title: '颜色选择器',
        dataIndex: 'color',
        select: '=',
        validation: [],
        hideInForm: false,
        hideInSearch: false,
        hideInTable: false,
        isKey: false,
        null: false,
        autoIncrement: false,
        unsign: false,
        mock: '@hex',
        sqlType: 'varchar',
        sqlLength: 10
      },
    ]
  }
]

export default defaultSql;
